home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Games / General / OmegaForMac / OmegaLib / readme3 < prev    next >
Text File  |  1994-05-16  |  9KB  |  207 lines

  1. omega implementor's notes.
  2.  
  3. Version 0.75
  4.  
  5. This version is a bugfixed version of 0.71. Bugs still remain. For
  6. example, the high score routines should really be completely
  7. rewritten. However, they probably will not be, as the next version
  8. will be a total rewrite, probably based on xview (don't hold
  9. your breath, out there....)
  10.  
  11. Notes on Game Structure:
  12.  
  13. I'm now keeping track of the last edit in odate.h -- if you hack
  14. omega, you might conceivably want to do the same. The #definition
  15. of LAST_OMEGA_EDIT_DATE is printed by the 'V' command....
  16.  
  17. Right now the structure of guilds, dungeons, quests, etc. is not
  18. really the way I want it. The player winds up doing basically all the
  19. same things each game, no matter which guild he may be in, because
  20. there is not enough detail to the world of omega. It is a LOT of
  21. painstaking work to sort out threads of narrative structure (such as
  22. for example the beginning attempts I've made with the LawBringer and
  23. the way he interacts with the Circle of Sorcerors and the Order of
  24. Paladins).
  25.  
  26. Theoretically, one need not do any questing at all to become a Total
  27. Winner (ie, become an adept); this is also not desirable.
  28.  
  29. There are any number of ways to mechanically "crack" the game, i.e.,
  30. to do something to take advantage of omega for the player's benefit in
  31. some deviant way. At least you can't drop a 32 bit number of negative
  32. gold pieces like in hack.... Anyhow, making sure these loopholes are
  33. filled is a low priority except when they are really blatant; I'd much
  34. rather enhance game play for people who don't cheat....
  35.  
  36. At the moment I have several goals for the next major version of
  37. omega (0.80):
  38.  
  39.     * Enhanced game structure -- more dungeons, more detail
  40.     within guilds, pristhoods, etc. that will make the game
  41.     very different for different characters.
  42.  
  43.     * More player interaction. I still don't intend to have
  44.     omega be an online multiplayer game, but it would be nice
  45.     to have more effect on the game from the actions of 
  46.     previous characters.
  47.  
  48.     * X and/or NeWS and/or Sunview II front-end(s). It would be nice
  49.     to have a separate inventory window, be able to click destinations,
  50.     have monster and terrain fonts, etc. If I get really
  51.     overexcited, how about a perspective view of the dungeon....
  52.  
  53. As always, I welcome suggestions. It is very easy to add more monsters,
  54. magic items, magic spells, etc....
  55.  
  56. Notes on the Code:
  57.  
  58. As far as I can tell, all this should work on any Unix* system, but
  59. I've never tried it on anything but a Sun, not having enough disk
  60. space to my name anywhere else to try.... It uses curses for I/O, and
  61. tries to use as few OS-dependent functions as it can elsewhere. It
  62. should be pretty easy to port to any Unix* variant that has curses.
  63. omega has now been implemented not only on Suns, Vaxen, and Pyramids,
  64. but even on machines such as Amdahls running unix over the normal
  65. operating system. The current version has #ifdef's for MSDOS,
  66. courtesy nathan@brokaw.lcs.mit.edu. Unfortunately, this makes
  67. the code harder to read, but such is life.
  68.  
  69. Identifier Convention:
  70. UPPERCASE CONSTANTS are all #defined in odefs.h
  71. Capitalized Globals are all defined in o.c and externally declared in oglob.h
  72. other identifiers are lowercase
  73.  
  74. I have attempted to keep extremely system-dependent stuff segregated
  75. from the rest of the code.
  76.  
  77. For example, all screen manipulation functions are in oscr.c, for
  78. those of you who want to port omega to something that doesn't have
  79. curses. (Well, there's a little in ofile.c)
  80.  
  81. Almost all file manipulation is done in ofile.c, and I have attempted
  82. to keep this simple and consistent.
  83.  
  84. A few other system calls are in o.c and outil.c, and that's about it.
  85.  
  86. Unfortunately, commenting is pretty minimal, mostly stupid things like:
  87.  
  88.   /* this routine shows a monster */
  89.   void showmonster(m)
  90.  
  91. ...and abstruse reminders to myself. As I clean the code up for the
  92. final release version, this will improve. I usually try to avoid
  93. cleverness in my c code, preferring two assignments and an if
  94. statement to a single complex line with three nested conditional
  95. expressions. Still, there are some places where the code is pretty
  96. opaque... sorry about that. Also, I will probably switch over
  97. to ANSI style c pretty soon.
  98.  
  99. Each module has a short description of its contents at the top, and
  100. mostly functions tend to stay where it is reasonable to find them.
  101. There are a few grab-bag modules, though, such as oaux1, oaux2 and
  102. oaux3 (utility functions for ocom and other modules), oetc (total
  103. grab-bag), and outil (mostly more general utility functions used by
  104. everything).  To save on module size, I have broken a couple of
  105. modules (such as ocom and osite) into pieces. I never got around to
  106. stating precisely which functions that used to be in ocom are now in
  107. ocom1, ocom2, or ocom3, but grep and ^s always work.... Anyhow,
  108. one of these days I will clean up. Really.
  109.  
  110. oextern.h has all the function declarations. Unfortunately, some of
  111. these are incorrect as to which module the function is contained
  112. in -- I split a number of modules and rearranged others, so
  113. while all the declarations are in fact correct, the comments stating
  114. where things are are sometimes off. I'll get around to fixing things
  115. one of these days. 
  116.  
  117. odefs.h has all the CPP stuff, structure definitions, and typedefs.
  118.  
  119. oglob.h has all the external global variable declarations, and
  120. also includes the preceding two header files.
  121.  
  122. Those of you wishing to port omega to machines without virtual memory
  123. will probably want to keep only one dungeon level in memory at a time;
  124. you ought to be able to use the save_level and restore_level routines
  125. in olev.c to get that working. A lot of memory (primary and
  126. secondary), is currently required to play a full game; you could
  127. probably run for a while with a good deal less, though. However,
  128. you'll need a good deal of disk space if you don't have a lot of
  129. memory; it's just not practicable to play with under several meg of
  130. combined memory and disk space. Actually, I should probably make
  131. up standard #define to save all levels but the current one to disk
  132. as an option (rendering the moria-like lossage of previously entered
  133. dungeons nugatory), but see the previous note about laziness....
  134.  
  135. KNOWN BUGS AND MISFEATURES: 
  136.  
  137.     * When you exit to the countryside, there is often one extraneous
  138.     character drawn somewhere on the screen. I have no idea why.
  139.  
  140.     * Sometimes monsters leave echos behind as they move. This
  141.     occurs sufficiently rarely that I have not yet felt a need
  142.     to rewrite my display code in oscr.c; for some reason it happens
  143.     less when compiled with gcc than with cc.... Actually,
  144.     this problem has hopefully just gone away, but one never knows....
  145.  
  146.     * It is apparently occasionally possible to juggle two-handed
  147.     weapons so as to either duplicate or destroy an object. For
  148.     some reason this seems to happen to other people than me,
  149.     mostly. I am not sure if it is still possible to do this.
  150.  
  151.     * There are still some circumstances where the message
  152.     display overwrites a line too fast to read it; there are other
  153.     places where you have to hit the space bar an extra time.
  154.     This is partly due to the fact that I have not fully converted
  155.     to the three-line message display area, and partly due to 
  156.     laziness in tracking down the instances where this occurs.
  157.  
  158.     * It is occasionally possible to destroy a game on save/restore;
  159.     you save, and on restore you get a core dump signal. Sometimes
  160.     when you save again it goes away; sometimes it doesn't.
  161.  
  162.     * Sometimes there seems to be an (unintentional) party room
  163.     effect in some rooms in dungeon levels, ie, a bunch of monsters
  164.     are having a party. I am not certain why this happens, but
  165.     I guess it's just another one of the risks the adventurer takes...
  166.  
  167.     * For some bizarre reason, it is sometimes possible to have
  168.     strange behavior from boots. Some boots will grant permanent
  169.     effects, even when taken off -- this is pretty intermittent.
  170.     7 league boots sometimes just stop working.
  171.  
  172.     * As far as I know (ha ha), there aren't any core dump bugs
  173.     in actual play at the moment.
  174.     
  175.  
  176. UNKNOWN BUGS:
  177.  
  178. There are an awful lot of features and the number of game states you
  179. can get into is very large. In addition, many of the more
  180. "interesting" bugs will probably only occur after long periods of play
  181. since the "higher level" a feature, effect, or state is, the less
  182. it's probably been tested. While I have not encountered any
  183. core-dump bugs recently, there undoubtably are some, not to mention
  184. lesser problems such as hacks to get high scores mechanically,
  185. misfeatures, poor game interface occasions, etc.
  186.  
  187. I am always anxious to hear about any problems you have had with
  188. omega, be they problems with compilation, gameplay, or whatever.
  189. Suggestions for fixes are always welcome, as are wish-lists for
  190. additional features. The most useful things are new monsters, new
  191. items, and new magical effects, as these can be added without
  192. disrupting existing features.
  193.  
  194. I hope you enjoy the game.
  195.  
  196. -Laurence,
  197.  
  198.              Laurence R. Brothers
  199.               brothers@paul.rutgers.edu
  200.             {anywhere}!rutgers!paul.rutgers.edu!brothers
  201.                "One life -- one arrow."
  202.  
  203.  
  204. * Ha, I bet you were expecting some different message. Well, this is not
  205. a commercial document or a public net announcement, so I don't see
  206. why I have to credit Bell Labs or UCB. So there.
  207.